'######################
' OMSI MANUAL GEARBOX
' Adapted from original OMSI Script by Thiago and krtz07
'######################
'Revision History
'Thiago 6.11 Manual Script for OMSI buses
'Kyle Ortiz 28.6.11 Imported some code from the Engine.OSC file. Added gear efficiency 
'----------------------
'	Trigger
'----------------------


{trigger:kw_s_N}
	0 (S.L.antrieb_getr_gang)
{end}


{trigger:kw_s_1_fest}
{trigger:kw_s_1} 
        (L.L.Clutch) (S.L.antrieb_getr_ratio_act)   
	1 (S.L.antrieb_getr_gang)
    
{end}
{end}

{trigger:kw_s_2_fest}
{trigger:kw_s_2}
        (L.L.Clutch) (S.L.antrieb_getr_ratio_act)  
        2 (S.L.antrieb_getr_gang)
    
{end}
{end}

{trigger:kw_s_3_fest}
{trigger:kw_s_3}
        (L.L.Clutch) (S.L.antrieb_getr_ratio_act)   
	3 (S.L.antrieb_getr_gang)
      
{end} 
{end}

{trigger:kw_s_4_fest}
{trigger:kw_s_4}
        (L.L.Clutch) (S.L.antrieb_getr_ratio_act) 
	4 (S.L.antrieb_getr_gang)
       
{end}
{end}

{trigger:kw_s_5_fest}
{trigger:kw_s_5}
        (L.L.Clutch) (S.L.antrieb_getr_ratio_act) 
	5 (S.L.antrieb_getr_gang)
      
{end}
{end}

{trigger:kw_s_6_fest}
{trigger:kw_s_6}
        (L.L.Clutch) (S.L.antrieb_getr_ratio_act) 
	6 (S.L.antrieb_getr_gang)

{end}
{end}

{trigger:kw_s_R_fest}
{trigger:kw_s_R}
	-1 (S.L.antrieb_getr_gang)
{end}
{end}

{trigger:kw_s_1_fest_off}
{trigger:kw_s_2_fest_off}
{trigger:kw_s_3_fest_off}
{trigger:kw_s_4_fest_off}
{trigger:kw_s_5_fest_off}
{trigger:kw_s_6_fest_off}
{trigger:kw_s_R_fest_off}
	0 (S.L.antrieb_getr_gang)
{end}
{end}
{end}
{end}
{end}
{end}


'----------------------
'	Init
'----------------------

{macro:antrieb_init}
	0 (S.L.antrieb_eng_on)
	0 (S.L.antrieb_getr_gang)
        0 (L.L.Clutch)
{end}

'----------------------
'	Frame
'----------------------

{macro:antrieb_frame}


'Prüfen der aktuellen Übersetzung:

(L.L.antrieb_getr_gang) s0

l0 0 =
{if}
	0 (S.L.antrieb_getr_ratio_act)
{else}
l0 -1 =
{if}
	(C.L.antrieb_getr_ratioR) (S.L.antrieb_getr_ratio_act)
{else}
l0 1 =
{if}
	(L.L.Clutch) (C.L.antrieb_getr_ratio1) (S.L.antrieb_getr_ratio_act)
	(L.L.throttle) 0.65 * (S.L.engine_throttle_injection)
{else}
l0 2 =
{if}
	(L.L.Clutch) (C.L.antrieb_getr_ratio2) (S.L.antrieb_getr_ratio_act)
	(L.L.throttle) 0.85 * (S.L.engine_throttle_injection)
{else}
l0 3 =
{if}
	(L.L.Clutch) (C.L.antrieb_getr_ratio3) (S.L.antrieb_getr_ratio_act)
{else}
l0 4 =
{if}
	(L.L.Clutch) (C.L.antrieb_getr_ratio4) (S.L.antrieb_getr_ratio_act)
{else}
l0 5 =
{if}
	(L.L.Clutch) (C.L.antrieb_getr_ratio5) (S.L.antrieb_getr_ratio_act)
{else}
l0 6 =
{if}
	(L.L.Clutch) (C.L.antrieb_getr_ratio6) (S.L.antrieb_getr_ratio_act)
{endif}
{endif}
{endif}
{endif}
{endif}
{endif}
{endif}
{endif}



'Berechnung der Kupplungsdrehzahl:

	(L.L.n_Wheel) (C.L.antrieb_i_achse) * (L.L.antrieb_getr_ratio_act) * (S.L.antrieb_kupp_n)

'Berechnung des Motordrehmomentes (engine.osc):

	(M.L.calc_eng_M)

'Added code by Krtz07

	(L.L.throttle) (S.L.engine_internal_throttle)

'Berechnung der Differenz zwischen Motordrehzahl und Kupplungsdrehzahl:

	(L.L.antrieb_kupp_n) (L.L.engine_n) - (S.L.antrieb_kupp_n_delta) abs 50 >
'	{if}
'		1 (S.L.antrieb_kupp_schleif)
'	{endif}


'Wenn kein Gang eingelegt ist...
	(L.L.antrieb_getr_gang) 0 = 
	{if}
		0 (S.L.antrieb_kupp_M_haft) (S.L.antrieb_kupp_M_gleit)
		1 (S.L.antrieb_kupp_schleif)
	{else}
'Sonst Berechnen der aktuellen Kupplungsmomente:

		
		1 (L.L.Clutch) - 0.1 - 0.2 / 0 max 1 min d *

		s0
		(C.L.antrieb_kupp_Mmax_haft) * (S.L.antrieb_kupp_M_haft)
		l0 (C.L.antrieb_kupp_Mmax_gleit) * (S.L.antrieb_kupp_M_gleit)
	{endif}


'Wenn die Kupplung nicht schleift...

	(L.L.antrieb_kupp_schleif) 0 =
	{if}
		(L.L.antrieb_kupp_n) (S.L.engine_n)
		(L.L.engine_M) (S.L.engine_getr_M)
		(L.L.engine_M) abs (L.L.antrieb_kupp_M_haft) >
		{if}
			1 (S.L.antrieb_kupp_schleif)
		{endif}
	{else}

'Sonst...

		(L.L.antrieb_kupp_n_delta) s0
		0 >
'Wenn Motor durch Kupplung beschleunigt wird...
		{if}
'Berechnen des Motor-Beschleunigungsmomentes:

			(L.L.antrieb_kupp_M_gleit) /-/ (S.L.engine_getr_M)
		{else}
			(L.L.antrieb_kupp_M_gleit) (S.L.engine_getr_M)
		{endif}

' Calls engine.osc
		(M.L.engine_acceleration)


'Prüfen, ob sich das Vorzeichen der Drehzahldifferenz umkehrt:


		(L.L.antrieb_kupp_n) (L.L.engine_n) - (L.L.antrieb_kupp_n_delta) * 0 <
		{if}
			0 (S.L.antrieb_kupp_schleif)
			(L.L.antrieb_kupp_n) (S.L.engine_n)
		{endif}


	{endif}

	
'Berechnung des Abtriebmomentes:

	(L.L.engine_getr_M) (L.L.antrieb_getr_ratio_act) * (C.L.antrieb_i_achse) * (C.L.gear_efficiency) * (S.L.M_Wheel)


{endif}

{end}





